package com.hare.system_server.serice;


import com.baomidou.mybatisplus.extension.service.IService;
import com.hare.common.utils.PageUtils;
import com.hare.system_api.dto.SysUserDTO;
import com.hare.system_api.po.SysAdmin;
import com.hare.system_api.vo.SysUserSystemVO;


/**
 * @program: Hare
 * @description: 用户实现Service
 * @author: Hare
 * @create: 2022-11-21 15:58
 * @Version 6.0.1
 **/
public interface SysUserService extends IService<SysAdmin> {


    /**
     * 用户管理==> 查询用户信息
     *
     * @param dto 用户信息
     * @return
     */
    public PageUtils<SysUserSystemVO> pageUserInfo(SysUserDTO dto);


    /**
     * 通过用户ID查询用户
     *
     * @param userId 用户ID
     * @return 用户对象信息
     */
    public SysUserSystemVO selectUserById(String userId);


    /**
     * 用户管理==> 添加 or修改用户信息
     *
     * @param dto 用户信息
     */
    public int userInsertOrEdit(SysUserDTO dto);


    /**
     * 检查用户名是否唯一
     *
     * @param userName 用户名
     * @return
     */
    public int checkUserNameUnique(String userName);


    /**
     * 检查邮箱是否唯一
     *
     * @param email 邮箱
     * @return
     */
    public int checkEmailUnique(String email);


    /**
     * 修改密码
     *
     * @param pas 密码
     * @param id  用户Id
     * @return
     */
    public int updatePassWord(String pas, String id);


    /**
     * 用户管理==> 根据用户id查询用户信息
     *
     * @param userId 用户id
     * @return
     */
    public SysUserSystemVO selectUser(String userId);


    /**
     * 用户管理==> 根据用户id删除用户信息
     *
     * @param dto 用户信息
     * @return
     */
    public int delUserInfo(SysUserDTO dto);


    /**
     * 用户管理==> 根据用户id修改用户状态
     *
     * @param dto 用户信息
     * @return
     */
    public int editUserStatus(SysUserDTO dto);


    /**
     * 校验用户是否允许操作
     *
     * @param user 用户信息
     */
    public void checkUserAllowed(SysUserDTO user);

}
